Exception Handling হলো এমন একটি প্রক্রিয়া যা প্রোগ্রামিং চলাকালীন ত্রুটি বা অপ্রত্যাশিত পরিস্থিতি সনাক্ত করে এবং সেই ত্রুটির জন্য একটি নির্দিষ্ট সমাধান প্রদান করে। Exception Handling-এর প্রধান উদ্দেশ্য হলো প্রোগ্রাম চলাকালীন ত্রুটি ঘটলেও প্রোগ্রাম যেন ধ্বংস না হয় এবং নির্দিষ্ট পদ্ধতিতে কার্যক্রম সম্পন্ন করতে পারে।
Apex-এ Exception Handling ত্রুটি সনাক্ত করে এবং তা যথাযথভাবে পরিচালনা করতে try, catch, finally ব্লক ব্যবহার করে। এটি প্রোগ্রামিংকে আরও নির্ভুল ও স্থিতিশীল করে তোলে, কারণ Exception Handling এর মাধ্যমে প্রোগ্রামের ত্রুটি সমাধান বা নির্দেশনা দেওয়া সম্ভব হয়।
Exception Handling এর প্রধান উপাদান
try ব্লক: প্রোগ্রামের সেই অংশ যেখানে ত্রুটি ঘটার সম্ভাবনা রয়েছে, তাকে try ব্লকের মধ্যে রাখা হয়। যখনই এই অংশে ত্রুটি দেখা দেয়, তখন Exception Handling এর প্রক্রিয়া শুরু হয়।
catch ব্লক: catch ব্লক ব্যবহার করে ত্রুটির ধরন অনুযায়ী উপযুক্ত ব্যবস্থা নেওয়া যায়। ত্রুটি ঘটলে catch ব্লক এক্সিকিউট হয় এবং ত্রুটি সমাধানের জন্য নির্দিষ্ট লজিক সম্পাদন করে।
finally ব্লক: finally ব্লক এমন একটি অংশ, যা try এবং catch ব্লকের পরে অবশ্যই এক্সিকিউট হয়। এটি Exception ঘটুক বা না ঘটুক, সব ক্ষেত্রেই কার্যকর হয়। সাধারণত finally ব্লক রিসোর্স রিলিজ বা ক্লিন-আপ কার্যক্রমের জন্য ব্যবহৃত হয়।
Exception Handling এর সাধারণ সিনট্যাক্স
apex
Copy code
try {
// কোড যা ত্রুটি ঘটাতে পারে
} catch (ExceptionType e) {
// ত্রুটি সমাধানের জন্য লজিক
} finally {
// অতিরিক্ত কার্যক্রম, যা অবশ্যই কার্যকর হবে
}
- ExceptionType: ত্রুটির ধরণ বা টাইপ উল্লেখ করা হয়, যেমন
NullPointerException,DmlExceptionইত্যাদি। - e: Exception অবজেক্ট, যা ত্রুটির বিস্তারিত তথ্য ধারণ করে এবং
getMessage()বাgetStackTraceString()এর মাধ্যমে ত্রুটির বিবরণ দেখা যায়।
Apex Exception Handling এর উদাহরণ
নিচে একটি সাধারণ উদাহরণ দেয়া হলো যেখানে Division by Zero এর Exception Handling করা হয়েছে।
apex
Copy code
public class DivisionExample {
public void divideNumbers(Integer a, Integer b) {
try {
Integer result = a / b;
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('Cannot divide by zero: ' + e.getMessage());
} finally {
System.debug('Operation completed.');
}
}
}
- এখানে,
tryব্লকের মধ্যেa / bঅপারেশনটি রয়েছে, যাbএর মান শূন্য হলে ত্রুটি সৃষ্টি করবে। catchব্লকেArithmeticExceptionধরার ব্যবস্থা করা হয়েছে এবং ত্রুটির একটি বার্তা প্রদর্শন করা হয়েছে।finallyব্লকে একটি মেসেজ প্রিন্ট করা হয়েছে, যা Exception ঘটুক বা না ঘটুক সব অবস্থাতেই কার্যকর হবে।
Apex এর Common Exceptions
Apex এ কিছু সাধারণ Exception রয়েছে, যা প্রায়ই প্রোগ্রামিং চলাকালীন ঘটে। এর মধ্যে কয়েকটি হলো:
- DmlException: DML অপারেশনের সময় ত্রুটি ঘটলে সৃষ্টি হয়।
- NullPointerException: যখন Null ভ্যালু অ্যাক্সেস করতে চেষ্টা করা হয়, তখন সৃষ্টি হয়।
- ListException: যখন লিস্ট অপারেশন ভুলভাবে প্রয়োগ করা হয়, তখন ঘটে।
- QueryException: SOQL কুয়েরি থেকে ত্রুটি ঘটলে সৃষ্টি হয়।
- TypeException: যখন কোনো ভেরিয়েবল বা অবজেক্ট ভুল টাইপে কাস্ট করতে চেষ্টা করা হয়।
Exception Handling এর ব্যবহারিক দিক
Exception Handling-এর মাধ্যমে প্রোগ্রামিংয়ে কিছু ব্যবহারিক সুবিধা পাওয়া যায়:
- ত্রুটির প্রভাব কমানো: ত্রুটি ঘটলে তা সমাধানের মাধ্যমে প্রোগ্রাম ক্র্যাশ হওয়া থেকে রক্ষা পাওয়া যায়।
- Debugging সহজ করা: Exception Handling ত্রুটির উৎস এবং বিবরণ জানাতে সহায়ক হয়, যা ডিবাগিং আরও সহজ করে।
- রিসোর্স ম্যানেজমেন্ট:
finallyব্লক ব্যবহার করে অবশিষ্ট রিসোর্স যেমন ডেটাবেস কানেকশন বা ফাইল রিসোর্স বন্ধ করা যায়। - ব্যবহারকারীর জন্য উপযোগী বার্তা: ত্রুটির ধরন অনুযায়ী ব্যবহারকারীকে নির্দেশনা দেওয়া যায়।
উদাহরণ: DML Exception Handling
নিচের উদাহরণে, একটি DML অপারেশনে Exception Handling দেখানো হয়েছে।
apex
Copy code
public class DmlExample {
public void createAccount(String name) {
try {
Account acc = new Account(Name = name);
insert acc;
} catch (DmlException e) {
System.debug('DML Error: ' + e.getMessage());
} finally {
System.debug('DML Operation Completed.');
}
}
}
- এখানে
insertDML অপারেশনে Exception Handling করা হয়েছে। কোনো ত্রুটি ঘটলেcatchব্লকে ত্রুটির বার্তা প্রিন্ট হবে, এবংfinallyব্লকে একটি মেসেজ প্রিন্ট হবে।
Exception Handling এর ভালো অনুশীলন
- স্পেসিফিক Exception ধরুন: সাধারণ
Exceptionনা ধরে নির্দিষ্ট Exception টাইপ ধরার চেষ্টা করুন, যেমনDmlException,NullPointerException। finallyব্লক ব্যবহার করুন: যেখানে সম্ভব,finallyব্লক ব্যবহার করে রিসোর্স মুক্ত করুন।- Detailed Error Message প্রদর্শন করুন: Exception এর
getMessage()এবংgetStackTraceString()মেথড ব্যবহার করে ত্রুটির বিবরণ দেখান। - Nested Exception Avoid করুন: একাধিক
try-catchব্লক বা nested exception এড়িয়ে চলুন।
সংক্ষেপে
- Exception Handling প্রোগ্রামিং চলাকালীন ত্রুটি সমাধানে সহায়ক, যা প্রোগ্রামকে ব্যাহত হওয়া থেকে রক্ষা করে।
- try-catch-finally ব্লকের মাধ্যমে ত্রুটি সমাধান এবং রিসোর্স ম্যানেজমেন্ট সহজ হয়।
- DML Exception Handling এবং Custom Exception Message ব্যবহারের মাধ্যমে উন্নত ডিবাগিং এবং ব্যবহারের সুবিধা পাওয়া যায়।
Exception Handling Apex প্রোগ্রামিং-এ একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা প্রোগ্রামকে ত্রুটি সহ্য করে চলমান রাখতে এবং ব্যবস্থাপনা কার্যক্রম উন্নত করতে সহায়ক।
Read more